package org.rugby.online.core.season.matches;

import java.io.Serializable;
import java.util.List;

import org.rugby.online.core.humans.RboPlayer;

/**
 * Interface for replacement of players strategy
 * @author marseille
 *
 */
public interface RboReplaceStrategy extends Serializable {

	/**
	 * Maximal number of replacements
	 */
	public static final int MAX_NUMBER = 7;
	
	/**
	 * Get the list of players 
	 * @return the list of players not playing at start
	 */
	public List<RboPlayer> getOffPlayers();
	
	/**
	 * Get the full list of replacements
	 * @return the full list of replacements
	 */
	public List<RboReplacement> getFullList();
	
	/**
	 * Get the list of scheduled replacements
	 * @return the list of scheduled replacements
	 */
	public List<RboScheduledReplacement> getScheduledList();
	
	/**
	 * Get replacement strategies in case of injuries
	 * @return the list of replacement for injuries
	 */
	public List<RboReplacement> getInjuryList();
	
}
